home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 24 / CU Amiga Magazine's Super CD-ROM 24 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-07].iso / CUCD / Utilities / vim-5.1 / syntax / html.vim < prev    next >
Encoding:
Text File  |  1998-04-02  |  16.9 KB  |  237 lines

  1. " Vim syntax file
  2. " Language:    HTML
  3. " Maintainer:    Claudio Fleiner <claudio@fleiner.com>
  4. " URL:        http://www.fleiner.com/vim/syntax/html.vim
  5. " Last change:    1998 Mar 28
  6.  
  7. " Please check :help html.vim for some comments and a description of the options
  8.  
  9. " Remove any old syntax stuff hanging around
  10. syn clear
  11. syn case ignore
  12.  
  13. " mark illegal characters
  14. syn match htmlError "[<>&]"
  15.  
  16. " tags
  17. syn match   htmlSpecial  contained "\\[0-9][0-9][0-9]\|\\."
  18. syn region  htmlString   contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=htmlSpecial,javaScriptExpression
  19. syn region  htmlString   contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=htmlSpecial,javaScriptExpression
  20. syn match   htmlValue    contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1   contains=javaScriptExpression
  21. syn region  htmlEndTag             start=+</+    end=+>+              contains=htmlTagName,htmlTagError
  22. syn region  htmlTag                start=+<[^/]+ end=+>+              contains=htmlString,htmlTagName,htmlArg,htmlValue,htmlTagError,htmlEvent
  23. syn match   htmlTagError contained "[^>]<"ms=s+1
  24.  
  25. " tag names
  26. syn keyword htmlTagName contained address applet area a base basefont
  27. syn keyword htmlTagName contained big blockquote br caption center
  28. syn keyword htmlTagName contained cite code dd dfn dir div dl dt font
  29. syn keyword htmlTagName contained form hr html img
  30. syn keyword htmlTagName contained input isindex kbd li link map menu
  31. syn keyword htmlTagName contained meta ol option param pre p samp span
  32. syn keyword htmlTagName contained select small strike style sub sup
  33. syn keyword htmlTagName contained table td textarea th tr tt ul var
  34. syn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>"
  35.  
  36. " legal arg names
  37. syn keyword htmlArg contained action
  38. syn keyword htmlArg contained align alink alt archive background bgcolor
  39. syn keyword htmlArg contained border bordercolor cellpadding
  40. syn keyword htmlArg contained cellspacing checked clear code codebase color
  41. syn keyword htmlArg contained cols colspan content coords enctype face
  42. syn keyword htmlArg contained gutter height hspace
  43. syn keyword htmlArg contained link lowsrc marginheight
  44. syn keyword htmlArg contained marginwidth maxlength method name prompt
  45. syn keyword htmlArg contained rel rev rows rowspan scrolling selected shape
  46. syn keyword htmlArg contained size src start target text type url
  47. syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap
  48. syn match   htmlArg contained "http-equiv"
  49. syn match   htmlArg contained "href"
  50.  
  51. " Netscape extensions
  52. syn keyword htmlTagName contained frame frameset nobr 
  53. syn keyword htmlTagName contained layer ilayer nolayer spacer
  54. syn keyword htmlArg     contained frameborder noresize pagex pagey above below
  55. syn keyword htmlArg     contained left top visibility clip id noshade
  56. syn match   htmlArg     contained "z-index"
  57.  
  58. " special characters
  59. syn match htmlSpecialChar "&[^;]*;"
  60.  
  61. " The real comments (this implements the comments as defined by html,
  62. " but not all html pages actually conform to it. Errors are flagged.
  63. syn region htmlComment                start=+<!+        end=+>+ contains=htmlCommentPart,htmlCommentError
  64. syn region htmlComment                start=+<!DOCTYPE+ end=+>+
  65. syn match  htmlCommentError contained "[^><!]"
  66. syn region htmlCommentPart  contained start=+--+        end=+--+
  67.  
  68. " server-parsed commands
  69. syn region htmlPreProc start=+<!--#+ end=+-->+
  70.  
  71. if !exists("html_no_rendering")
  72.   " rendering
  73.   syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlBoldUnderline,htmlBoldItalic
  74.   syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlBoldUnderline,htmlBoldItalic
  75.   syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlBoldUnderlineItalic
  76.   syn region htmlBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlBoldItalicUnderline
  77.   syn region htmlBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlBoldItalicUnderline
  78.   syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  79.   syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  80.   syn region htmlBoldItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlBoldUnderlineItalic
  81.   
  82.   syn region htmlUnderline start="<u\>" end="</u>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlUnderlineBold,htmlUnderlineItalic
  83.   syn region htmlUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlUnderlineBoldItalic
  84.   syn region htmlUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlUnderlineBoldItalic
  85.   syn region htmlUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmUnderlineItalicBold
  86.   syn region htmlUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmUnderlineItalicBold
  87.   syn region htmlUnderlineItalicBold contained start="<b\>" end="</b>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  88.   syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  89.   syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  90.   syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  91.   
  92.   syn region htmlItalic start="<i\>" end="</i>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlItalicBold,htmlItalicUnderline
  93.   syn region htmlItalic start="<em\>" end="</em>"me=e-5 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  94.   syn region htmlItalicBold contained start="<b\>" end="</b>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlItalicBoldUnderline
  95.   syn region htmlItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlItalicBoldUnderline
  96.   syn region htmlItalicBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  97.   syn region htmlItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,htmlItalicUnderlineBold
  98.   syn region htmlItalicUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  99.   syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  100.   
  101.   syn region htmlLink start="<a\>[^>]*href\>" end="</a>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript
  102.   syn region htmlH1 start="<h1\>" end="</h1>"me=e-5 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  103.   syn region htmlH2 start="<h2\>" end="</h2>"me=e-5 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  104.   syn region htmlH3 start="<h3\>" end="</h3>"me=e-5 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  105.   syn region htmlH4 start="<h4\>" end="</h4>"me=e-5 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  106.   syn region htmlH5 start="<h5\>" end="</h5>"me=e-5 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  107.   syn region htmlH6 start="<h6\>" end="</h6>"me=e-5 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript
  108.   syn region htmlHead start="<head\>" end="</head>"me=e-7 end="<body\>"me=e-5 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript
  109.   syn region htmlTitle start="<title\>" end="</title>"me=e-8 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript
  110. endif
  111.  
  112. " JAVA SCRIPT
  113. syn keyword htmlTagName                contained noscript
  114.  
  115. " html events (i.e. arguments that include javascript commands)
  116. syn region htmlEvent        contained start=+on[a-z]\+\s*=[\t ]*'+ skip=+\\\\\|\\'+ end=+'+ contains=javaScriptSpecial,javaScriptNumber,javaScriptLineComment,javaScriptComment,javaScriptStringD,javaStringCharacter,javaStringSpecialCharacter,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptOperator,javaScriptType,javaScriptStatement,javaScriptFunction,javaScriptBoolean,javaScriptBraces,javaScriptParen,javaScriptParenError
  117. syn region htmlEvent        contained start=+on[a-z]\+\s*=[\t ]*"+ skip=+\\\\\|\\"+ end=+"+ contains=javaScriptSpecial,javaScriptNumber,javaScriptLineComment,javaScriptComment,javaScriptStringS,javaStringCharacter,javaStringSpecialCharacter,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptOperator,javaScriptType,javaScriptStatement,javaScriptFunction,javaScriptBoolean,javaScriptBraces,javaScriptParen,javaScriptParenError
  118.  
  119. " a javascript expression is used as an arg value
  120. syn region  javaScriptExpression                 start=+&{+ end=+};+ contains=javaScriptSpecial,javaScriptNumber,javaScriptLineComment,javaScriptComment,javaScriptStringS,javaScriptStringD,javaStringCharacter,javaScriptSpecialCharacter,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptOperator,javaScriptType,javaScriptStatement,javaScriptBoolean,javaScriptFunction
  121.  
  122. " javascript starts with <SCRIPT and ends with </SCRIPT>
  123. syn region  javaScript                           start=+<script+ end=+</script>+ contains=javaScriptSpecial,javaScriptNumber,javaScriptLineComment,javaScriptComment,javaScriptStringS,javaScriptStringD,javaStringCharacter,javaStringSpecialCharacter,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptOperator,javaScriptType,javaScriptStatement,javaScriptFunction,javaScriptBoolean,javaScriptBraces,javaScriptParen,javaScriptParenError
  124. syn match   javaScriptLineComment      contained "\/\/.*$"
  125. syn match   javaScriptCommentSkip      contained "^\s*\*\($\|\s\+\)"
  126. syn region  javaScriptCommentString    contained start=+"+  skip=+\\\\\|\\"+  end=+"+ end=+\*/+me=s-1,he=s-1 contains=javaScriptSpecial,javaScriptCommentSkip
  127. syn region  javaScriptComment2String   contained start=+"+  skip=+\\\\\|\\"+  end=+$\|"+  contains=javaScriptSpecial
  128. syn region  javaScriptComment          contained start="/\*"  end="\*/" contains=javaScriptCommentString,javaScriptCharacter,javaScriptNumber
  129. syn match   javaScriptSpecial          contained "\\[0-9][0-9][0-9]\|\\."
  130. syn region  javaScriptStringD          contained start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=javaScriptSpecial
  131. syn region  javaScriptStringS          contained start=+'+  skip=+\\\\\|\\'+  end=+'+  contains=javaScriptSpecial
  132. syn match   javaScriptSpecialCharacter contained "'\\.'"
  133. syn match   javaScriptNumber           contained "-\=\<[0-9]\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
  134. syn keyword javaScriptConditional      contained if else
  135. syn keyword javaScriptRepeat           contained while for
  136. syn keyword javaScriptBranch           contained break continue
  137. syn keyword javaScriptOperator         contained new in
  138. syn keyword javaScriptType             contained this var
  139. syn keyword javaScriptStatement        contained return with
  140. syn keyword javaScriptFunction         contained function
  141. syn keyword javaScriptBoolean          contained true false
  142. syn match   javaScriptBraces           contained "[{}]"
  143. " catch errors caused by wrong parenthesis
  144. syn region  javaScriptParen            contained start="(" end=")" contains=javaScriptSpecial,javaScriptNumber,javaScriptLineComment,javaScriptComment,javaScriptStringS,javaScriptStringD,javaStringCharacter,javaStringSpecialCharacter,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptOperator,javaScriptType,javaScriptStatement,javaScriptFunction,javaScriptBoolean,javaScriptBraces,javaScriptParen
  145. syn match   javaScriptParenError       contained ")"
  146. syn match   javaScriptInParen          contained "[{}]"
  147.  
  148. " synchronizing (does not always work if a comment includes legal
  149. " html tags, but doing it right would mean to always start
  150. " at the first line, which is too slow)
  151. syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]"
  152. syn sync match htmlHighlight groupthere javaScript "<script"
  153. syn sync match htmlHighlightSkip "^.*['\"].*$"
  154. syn sync minlines=10
  155.  
  156. if !exists("did_html_syntax_inits")
  157.   let did_html_syntax_inits = 1
  158.   " The default methods for highlighting.  Can be overridden later
  159.   hi link htmlTag                 Function
  160.   hi link htmlEndTag              Identifier
  161.   hi link htmlArg                 Type
  162.   hi link htmlTagName             htmlStatement
  163.   hi link htmlValue               Value
  164.   hi link htmlSpecialChar         Special
  165.  
  166.   if !exists("html_no_rendering") 
  167.     hi link htmlH1                  Title
  168.     hi link htmlH2                  htmlH1
  169.     hi link htmlH3                  htmlH2
  170.     hi link htmlH4                  htmlH3
  171.     hi link htmlH5                  htmlH4
  172.     hi link htmlH6                  htmlH5
  173.     hi link htmlHead                PreProc
  174.     hi link htmlTitle               Title
  175.     hi link htmlBoldItalicUnderline htmlBoldUnderlineItalic
  176.     hi link htmlUnderlineBold       htmlBoldUnderline 
  177.     hi link htmlUnderlineItalicBold htmlBoldUnderlineItalic
  178.     hi link htmlUnderlineBoldItalic htmlBoldUnderlineItalic
  179.     hi link htmlItalicUnderline     htmlUnderlineItalic
  180.     hi link htmlItalicBold          htmlBoldItalic
  181.     hi link htmlItalicBoldUnderline htmlBoldUnderlineItalic
  182.     hi link htmlItalicUnderlineBold htmlBoldUnderlineItalic
  183.     if !exists("html_my_rendering")
  184.       hi htmlLink                term=underline cterm=underline ctermfg=blue gui=underline guifg=blue
  185.       hi htmlBold                term=bold cterm=bold gui=bold
  186.       hi htmlBoldUnderline       term=bold,underline cterm=bold,underline gui=bold,underline
  187.       hi htmlBoldItalic          term=bold,italic cterm=bold,italic gui=bold,italic
  188.       hi htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
  189.       hi htmlUnderline           term=underline cterm=underline gui=underline
  190.       hi htmlUnderlineItalic     term=italic,underline cterm=italic,underline gui=italic,underline
  191.       hi htmlItalic              term=italic cterm=italic gui=italic
  192.     endif
  193.   endif
  194.  
  195.   hi link htmlSpecial                   Special
  196.   hi link htmlSpecialChar               Special
  197.   hi link htmlString                    String
  198.   hi link htmlStatement                 Statement
  199.   hi link htmlComment                   Comment
  200.   hi link htmlCommentPart               Comment
  201.   hi link htmlPreProc                   PreProc
  202.   hi link htmlValue                     String
  203.   hi link htmlCommentError              htmlError
  204.   hi link htmlTagError                  htmlError
  205.   hi link htmlEvent                     javaScript
  206.   hi link htmlError            Error
  207.  
  208.   hi link javaScript                    Special
  209.   hi link javaScriptExpression          javaScript
  210.   hi link javaScriptComment             Comment
  211.   hi link javaScriptLineComment         Comment
  212.   hi link javaScriptSpecial             javaScript
  213.   hi link javaScriptStringS             String
  214.   hi link javaScriptStringD             String
  215.   hi link javaScriptCharacter           Character
  216.   hi link javaScriptSpecialCharacter    javaScriptSpecial
  217.   hi link javaScriptNumber              javaScriptValue
  218.   hi link javaScriptConditional         Conditional
  219.   hi link javaScriptRepeat              Repeat
  220.   hi link javaScriptBranch              Conditional
  221.   hi link javaScriptOperator            Operator
  222.   hi link javaScriptType                Type
  223.   hi link javaScriptStatement           Statement
  224.   hi link javaScriptFunction            Function
  225.   hi link javaScriptBoolean             Boolean
  226.   hi link javaScriptError               Error
  227.   hi link javaScriptBraces              Function
  228.   hi link javaScriptParenError          javaScriptError
  229.   hi link javaScriptInParen             javaScriptError
  230.   hi link javaScriptParen               javaScript
  231.  
  232. endif
  233.  
  234. let b:current_syntax = "html"
  235.  
  236. " vim: ts=8
  237.